/**
 * 部门选择器
 */

var ZjKcSelector = {
	/**
	 * @param callback
	 *            回调函数
	 * @param isSingle
	 *            是否单选
	 */
	getView : function(callback, isSingle, allCount) {

		var depcheckchange = function(node, checked) {
			// treeRight.root.setId(node.id);
			// treeRight.root.reload();
			var flg = false;
			// if (!node.isLeaf()) {
			if (checked) {
				node.parentNode.getUI().toggleCheck(true);
				node.eachChild(function(n) {
							if (n.getUI().isChecked()) {
								flg = true;
								return;
							}
						});
				if (flg == false) {
					node.eachChild(function(n) {
								if (n.getUI().isChecked() == false) {
									n.getUI().toggleCheck(true)
								}
							});
				}
				node.getUI().addClass('x-tree-node-checked');
			} else {
				node.parentNode.eachChild(function(n) {
							if (n.getUI().isChecked()) {
								flg = true;
								return;
							}
						})
				if (flg == false) {
					// node.parentNode.getUI().toggleCheck(false)
				}
				node.getUI().removeClass('x-tree-node-checked');
				node.eachChild(function(n) {
							if (n.getUI().isChecked()) {
								flg = true;
								return;
							}
						});
				if (flg == true) {
					node.eachChild(function(n) {
								if (n.getUI().isChecked()) {
									n.getUI().toggleCheck(false)
								}
							});
				}
			}
			if (isSingle) {
				treeDept.root.cascade(function(n) {
							n.getUI().toggleCheck(false);
						})
			}
		};
		var treeDept = new Ext.tree.TreePanel({
					title : '课程信息显示',
					width : 180,
					height : 300,
					split : true,
					collapsible : true,
					autoScroll : true,
					selModel : isSingle
							? new Ext.tree.DefaultSelectionModel()
							: new Ext.tree.MultiSelectionModel(),
					bbar : new Ext.Toolbar({
								items : [{
											xtype : 'button',
											iconCls : 'btn-refresh',
											text : '刷新',
											handler : function() {
												treeDept.root.reload();
											}
										}, {
											xtype : 'button',
											text : '展开',
											iconCls : 'btn-expand',
											handler : function() {
												treeDept.expandAll();
											}
										}, {
											xtype : 'button',
											text : '收起',
											iconCls : 'btn-collapse',
											handler : function() {
												treeDept.collapseAll();
											}
										}]
							}),
					loader : new Ext.tree.TreeLoader({
								url : _ctxPath
										+ '/getZjkcTree.do?zjlxbBean.yyid='
										+ yyid
							}),
					root : new Ext.tree.AsyncTreeNode({
								id : -1,
								expanded : true
							}),
					rootVisible : false,
					listeners : {
						'click' : function(node, e) {
//							if (node != null) {
//								if (isSingle) {
//									treeDept.root.cascade(function(n) {
//												n.getUI().toggleCheck(false);
//											})
//								}
//								var flg = node.getUI().isChecked();
//								if (!flg) {
//									node.getUI().toggleCheck(true);
//								} else {
//									node.getUI().toggleCheck(false);
//								}
//							}
						},
						'checkchange' : isSingle ? function() {
						} : depcheckchange,
//						'dblClick' : function(node, e) {
//							var kcIds = node.id;
//							var kcNames = node.text;
//							if (callback != null) {
//								callback.call(this, kcIds, kcNames);
//							}
//							window.close();
//						},
						append : function(t, p, n, i) {
							if (isSingle) {
								n.attributes['checked'] = null;
							}
							n.loader = new Ext.tree.TreeLoader({
										id : 'zjLoader',
										url : _ctxPath + '/genZjnrbTree.do'
									});
						}
					}
				});
		// panel-------------------------------------

		var window = new Ext.Window({
			title : '课程选择器' + (isSingle ? '（单选）' : '（多选）'),
			width : 200,
			height : 380,
			border : false,
			items : [treeDept],
			deptal : true,
			buttonAlign : 'center',
			buttons : [{
				text : '确定',
				iconCls : 'btn-save',
				handler : function() {
					var nodes, kcIds, kcNames, zjIds, zjNames;
					if (isSingle) {
						nodes = treeDept.getSelectionModel().getSelectedNode();
						if (nodes == null) {
							nodes = treeDept.root.findChild();
						}
						if (nodes.attributes['loader'] == 'zjLoader') {
							kcIds = 'kc' + nodes.id;
						} else {
							kcIds = 'zj' + nodes.id;
						}
						kcNames = (nodes.parentNode.text == undefined
								? ""
								: ((nodes.parentNode.text).split("|"))[1])
								+ ((nodes.text).split("|"))[1];
					} else {
						var selNodes = treeDept.getChecked();
						var kcids = [], kcnames = [];// 课程id 课程名称
						var zjids = [], zjnames = [];// 章节id 章节名称
						Ext.each(selNodes, function(node) {
									// 课程和章节分开存放
									if (node.attributes['loader'] == 'zjLoader') {
										kcids.push(node.id);
										// kcnames.push(node.text);
									} else {
										zjids.push(node.id);
										// zjnames.push(node.text);
									}
									kcnames.push(((node.text).split("|"))[1]);
								});
						kcIds = kcids.join();
						kcNames = kcnames.join();
						zjIds = zjids.join();
						zjNames = zjnames.join();
					}
					if (callback != null) {
						callback.call(this, kcIds, kcNames, zjIds, zjNames,
								allCount);
					}

					window.close();
				}
			}, {
				text : '取消',
				iconCls : 'btn-cancel',
				handler : function() {
					window.close();
				}
			}]
		});
		return window;
	}

};